//反转字符串中的元音字母------345
//给你一个字符串 s ，仅反转字符串中的所有元音字母，并返回结果字符串。
//元音字母包括 'a'、'e'、'i'、'o'、'u'，且可能以大小写两种形式出现不止一次。

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>

bool IsVowels(char s)
{
    if(s == 'a' || s == 'A' || 
       s == 'e' || s == 'E' || 
       s == 'i' || s == 'I' || 
       s == 'o' || s == 'O' || 
       s == 'u' || s == 'U')
    {
        return true;
    }
    return false;
}

void ExChange(char *s1,char *s2)
{
    char temp = *s1;
    *s1 = *s2;
    *s2 = temp;
}

char* reverseVowels(char* s) 
{
    int left = 0;
    int right = strlen(s) - 1;
    while(left < right)
    {
        while(left < right && !IsVowels(s[left]))
        {
            left++;
        }
        while(left < right && !IsVowels(s[right]))
        {
            right--;
        }
        if(left >= right)
            break;
        ExChange(s+left,s+right);
        left++;
        right--;
    }
    return s;
}

int main()
{
    // char *s1 = (char*)malloc(strlen(s1)+1);
    // s1 = "leetcode";
    char s1[8] = "leetcode";
    printf("%s\n",reverseVowels(s1));
    return 0;
}